#ifndef HPLC_ZKYS_PUMPSENDSYSTEMPACKET_H
#define HPLC_ZKYS_PUMPSENDSYSTEMPACKET_H

#include "hplczkyspumpsendpacket.h"

namespace hplc
{
namespace zkys
{

class HplcZkysPumpProtocolData;
class HplcZkysPumpSendSystemPacket
{
public:
    HplcZkysPumpSendSystemPacket(HplcZkysPumpProtocolData &data);

    void setWorkMode(quint8 mode, quint8 flag);
    void getWorkMode();
    void setFlowCalibDataCMD(quint8 cmd);
    void setFlowCalibData(float flow, float realFlow);
    void getFlowCalibData();
    void setFlowCalibLoadParam(float flow, float realFlow, float press);
    void getFlowCalibLoadParam();
    void setPressCalibDataCMD(quint8 cmd);
    void setPressCalibData(float press, float realPress);
    void getPressCalibData();
    void setPulseCompenDataCMD(quint8 cmd);
    void setPulseCompenData(float position, float compenFactor);
    void getPulseCompenData();
    void setPulseCompenDebugCMD(quint8 cmd);
    void getPulseCompenGearPos();
    void setStepMotorCurrentRun(quint8 current);
    void getStepMotorCurrentRun();
    void setMotorCurrentDataCMD(quint8 cmd);
    void setMotorCurrentData(float flow, quint8 current);
    void getMotorCurrentData();
    void setPumpMaterial(quint8 type);
    void getPumpMaterial();
    void getCurrentRpm();

protected:
    HplcZkysPumpProtocolData *m_d = nullptr;
};

} // zkys
} // hplc

#endif // HPLC_ZKYS_PUMPSENDSYSTEMPACKET_H
